<?


JCAT_Package::ImportClass( ROOT_PATH.'Classes/Coder/class.CoderDocBase.php') ;

class JCATDesktopProjectDoc extends JCATProjectDocBase 
{
	
	/**
	 * what's this
	 * 
	 * @access	public
	 * @param	$sPath=''	string	What's this Parameter ?
	 * @return	array
	 */
	public function JCATDesktopProjectDoc($sPath='')
	{
		$this->JCATProjectDocBase( __CLASS__, $sPath ) ;
		
		// 初始化文档结构
		
	}

	/**
	 * 项目的 UITemplate 类
	 * @return string
	 */
	public function GetUITemplateClassName()
	{
		return 'JCAT_UIGtkGlade' ; 
	}
	
	
	/**
	 * what's this
	 * 
	 * @access	public
	 * @static 
	 * @return	string
	 */
	public function GetObjctName()
	{
		return $this->Get('ProjectName') ;
	}
	
	/**
	 * what's this
	 * 
	 * @access	public
	 * @static 
	 * @return	string
	 */
	public function GetKindIcon($nSize=16)
	{
		return ROOT_PATH.'Resource/Image/View.24x24.png' ;
	}

	/**
	 * what's this
	 * 
	 * @access	public
	 * @static 
	 * @return	string
	 */
	public function GetObjectClass()
	{
		return '' ;
	}
	
	/**
	 * 项目的 UITemplate 包
	 * @return string
	 */
	public function GetUITemplatePackage()
	{
		return 'JCAT::PACKAGE_MVCGTK' ; 
	}
	
	/**
	 * what's this
	 * 
	 * @access	public
	 * @static 
	 * @return	string
	 */
	static public function GetControllerClassName()
	{
		return preg_replace('/Doc$/','',__CLASS__) ;
	}
	

	/**
	 * What's this Method ?
	 * 
	 * @access	protected
	 * @return	bool
	 */
	protected function CreateNewDocument()
	{
		$sPath = $this->GetPath() ;
		$sAppDir = dirname($this->GetPath()) ;

		// 创建 项目 目录 ::::::::::::::::::::::::::::::::::::::
		
		// 主目录
		if( !is_dir($sAppDir) )
		{
			if( !mkdir($sAppDir,0664,true) )
			{
				throw new JCAT_Exception(JCAT_Language::Sentence("无法创建项目主目录：“%s”",$sAppDir)) ;
				// return false ;
			}
		}
		
		
		// UITemplate 目录
		$arrDirs = $this->GetUITemplateDirs(true) ;
		foreach ($arrDirs as $sDir)
		{
			if( !mkdir($sDir,0777,true) )
			{
				JCAT_Gtk::MsgDlg(JCAT_Language::Sentence("无法创建 UITemplate 目录：\r\n%s",$sDir)) ;
			}
		}
		
		// 语言包 目录
		$arrDirs = $this->GetLanguageDirs(true) ;
		foreach ($arrDirs as $sDir)
		{
			if( !mkdir($sDir,0777,true) )
			{
				JCAT_Gtk::MsgDlg(JCAT_Language::Sentence("无法创建语言包目录：\r\n%s",$sDir)) ;
			}
		}
		
		// 类 目录
		$arrDirs = $this->GetClassDirs(true) ;
		foreach ($arrDirs as $sDir)
		{
			if( !mkdir($sDir,0777,true) )
			{
				JCAT_Gtk::MsgDlg(JCAT_Language::Sentence("无法创建语言包目录：\r\n%s",$sDir)) ;
			}
		}
		
		
		// 创建  初始化 文件 ::::::::::::::::::::::::::::::::::::::
		$aTemplate = new JCAT_UIHtml() ;
		$aTemplate->SetVar('TheDoc',$this) ;
		
		// 模版文件
		$sTemplateFile = dirname(__FILE__).'/template.JCATDesktopProject.php' ;
		
		// 产生内容
		$sNewSource = $aTemplate->Display( $sTemplateFile,false) ;

		// 调用 父类 创建一个空文件
		parent::CreateNewDocument() ;
		
		
		// 创建 项目初始化文件
		file_put_contents($sPath,$sNewSource) ;
		

		// 创建个目录中的  inc.PATH.php 文件
		JCATProjectBase::ImportDirectory($sAppDir,$sAppDir) ;
		$arrDirs = $this->GetClassDirs(true) ;
		foreach ($arrDirs as $sDir)
		{
			JCATProjectBase::ImportDirectory($sDir,$sAppDir) ;
		}
		
		return true ;
	}


}

JCAT_Package::ImportClass('JCAT_UIHtml',JCAT::PACKAGE_UIHTML) ;
?>